/***********************************************************************************
 * 文件名： hard_wire.h
 * 版本： 1
 * 说明：
 * 		MCU管脚与外部电路的连接关系声明，与管脚相关的一些申明。
 * 修改记录：
 * 	2021/04/28: 初版。 刘言。
***********************************************************************************/

#ifndef _HARD_WIRE_H_
#define _HARD_WIRE_H_

#include <sc.h>


#define BSP_MCU_MODEL   POLSYS_MCU_SC8

// 未使用的IO下拉输入
// PB3 仅用内部下拉会导致误判短路，原因可能是模拟与数字IO切换，模拟时会断开下拉。
// 不使用尾充和咪头时要处理响应的IO口，不要浮空。
#define GPIO_INIT   \
{\
    /*默认输出电平*/\
    PORTA = 0XF8;   /*1111 1000*/\
    PORTB = 0XFD;   /*1111 1101*/\
    /*方向，1:输入，0：输出*/\
    TRISA = 0XF8;   /*1111 1000*/\
    TRISB = 0XFC;   /*1111 1100*/\
    /*模拟引脚初始状态,1:模拟，0：数字(默认)*/\
    /*ANSEL = 0X00;*/   /*0000 0000 CH7~0*/\
    /*ANSELH = 0X08;*/  /*0000 1000 CH15~8*/\
    /*上拉，1：开启，0：关闭(默认)*/\
    WPUA = 0X20;    /*0010 0000*/\
    WPUB = 0X04;    /*0000 0100*/\
    /*下拉，1：开启，0：关闭（默认）*/\
    WPDA = 0XD8;    /*1101 1000*/\
    WPDB = 0XF0;    /*1111 0000*/\
    /*电平变化中断，1：允许，0：禁止*/\
    IOCA = 0X20;    /*0010 0000*/\
    IOCB = 0X08;    /*0000 1000*/\
}

// 未使用的IO输出0
// #define GPIO_INIT   \
// {\
//     /*默认输出电平*/\
//     PORTA = 0X00;   /*0000 0000*/\
//     PORTB = 0X09;   /*0000 1001*/\
//     /*方向，1:输入，0：输出*/\
//     TRISA = 0X20;   /*0010 0000*/\
//     TRISB = 0X0C;   /*0000 1100*/\
//     /*模拟引脚初始状态,1:模拟，0：数字(默认)*/\
//     /*ANSEL = 0X00;*/   /*0000 0000 CH7~0*/\
//     /*ANSELH = 0X08;*/  /*0000 1000 CH15~8*/\
//     /*上拉，1：开启，0：关闭(默认)*/\
//     WPUA = 0X20;    /*0010 0000*/\
//     /*WPUB = 0X00;*/    /*0000 0000*/\
//     /*下拉，1：开启，0：关闭（默认）*/\
//     /*WPDA = 0X00;*/    /*0000 0000*/\
//     WPDB = 0X0C;    /*0000 1100*/\
//     /*电平变化中断，1：允许，0：禁止*/\
//     IOCA = 0X20;    /*0010 0000*/\
//     IOCB = 0X0C;    /*0000 1100*/\
// }

#define LED_R         RA0
#define LED_R_ON      LED_R = 0
#define LED_R_OFF     LED_R = 1


#define LED_G         RA1
#define LED_G_ON      LED_G = 0
#define LED_G_OFF     LED_G = 1


#define LED_B         RA2
#define LED_B_ON      LED_B = 0
#define LED_B_OFF     LED_B = 1


#define OUTEN           RB0
#define OUTEN_ON        OUTEN = 0
#define OUTEN_OFF       OUTEN = 1
#define OUTEN_IS_ON     OUTEN == 0


// #define LED_S           RB1
// #define LED_S_ON        LED_S = 0
// #define LED_S_OFF       LED_S = 1



#define OVAL                RB3
#define OVAL_ANALOG_MODE    ANSEL11 = 1
#define OVAL_DIGIT_MODE     ANSEL11 = 0
#define OVAL_INPUT_MODE     TRISB3 = 1
#define OVAL_OUTPUT_MODE    TRISB3 = 0


#define BUTTON          RA5



#define ADCH_OVAL       11
#define ADCH_VREF       15

#endif
